package object;

public class ObjectDemo {
    public static void main(String[] args) {
        String s1=new String("hello");
        String s2=new String("hello");
        System.out.println(s1.equals(s2));//true

        StringBuilder builder1=new StringBuilder("hello");
        StringBuilder builder2=new StringBuilder("hello");
        System.out.println(builder1.equals(builder2));//false







        /*
        调用Object类的equals（），内部还是使用==比较地址，没有参考意义
        若想比较对象的属性值是否相同，我们认为Object类的equals（）并不能满足需求
        因此需要重写equals（）
         */
        Point p1=new Point(100,200);
        Point p2=new Point(100,200);
        System.out.println(p1==p2);//false,==比较的是地址

        System.out.println(p1.equals(p2));//重写Point后返回true
        System.out.println(s1.equals(builder1));














        /*
        输出引用变量时默认调用Object类的toString（）方法
        该方法返回的字符串的格式为：类的全称@hashcode值
        但通常这个返回结果对我们的开发没有意义
        真正想输出的应该是对象的属性值
        认为Object类的toString（）不能满足需求
        因此常常重写toString（）来返回具体的属性值
         */
      /*  Point p=new Point(100,200);
        System.out.println(p);
        System.out.println(p.toString());

       */
    }

}
